Side-by-side shared calendars

ABSTRACT

Methods and systems are provided for presenting a plurality of shared calendars in a single electronic display frame or window where each of the plurality of shared calendars is displayed in a common view mode relative to other displayed shared calendars. Users may select one or more shared calendars to be displayed in the same display frame or window as their own calendar. Upon selection of a shared calendar to be displayed alongside a first calendar, an aggregate view object is called to control and coordinate all shared calendars selected for display in the common window or frame. The aggregate view object determines the view data object, including view mode (hourly, daily, weekly, monthly) and other calendar display settings of the first or active calendar displayed in the common view of shared calendars.

RELATED APPLICATION

This Application is a continuation of U.S. application Ser. No.10/607,020 filed Jun. 26, 2003, which is incorporated herein byreference.

FIELD OF THE INVENTION

The present invention relates to methods and systems for creating andsimultaneously displaying multiple shared electronic calendars inside-by-side orientation.

BACKGROUND OF THE INVENTION

Since the advent of the computer and software age, software developershave attempted to provide helpful functionality to software users thatprovide useful information in a contextu nature. One useful applicationis the electronic calendaring application where users may enter and viewappointments and other scheduling data in an electronic calendarviewable on their computer display. Electronic calendars allow users toview calendar information in a variety of different modes such ashourly, daily, weekly, monthly, and the like, or portions of days,weeks, or months.

One useful aspect of electronic calendaring systems is the ability ofusers to share calendaring information across a distributed computingenvironment with other electronic calendar users. That is, one user maygive permission to a number of other users to view his or her personalor business electronic calendar data. Accordingly, the first user mayselect a desired calendar of a friend or colleague and display theselected calendar using the first user's calendar application. Often, auser may wish to compare her calendar data to another user's calendardata to determine whether the second user is available for a meeting ata desired date and time period. In order to compare calendars, usersmust toggle between two or more calendars, or users may open twocalendar windows on the same display. Unfortunately, because the secondor other calendar may be presented in a different mode, for example,daily, weekly, monthly, etc., the first user has a difficult orunfriendly user experience at best.

Accordingly, there is a need for a method and system for presentingmultiple shared calendars in a single common display window or framewhere the multiple shared calendars are presented in common views anddisplay modes. There is further a need for a method and system forallowing quick and efficient addition and removal of shared calendarsfrom the multiple calendar view. It is with respect to these and otherconsiderations that the present invention has been made.

SUMMARY OF THE INVENTION

Embodiments of the present invention provide methods and systems forpresenting a plurality of shared calendars in a single electronicdisplay frame or window where each of the plurality of shared calendarsis displayed in a common view mode relative to other displayed sharedcalendars. According to an aspect of the invention, users may select oneor more shared calendars to be displayed in the same display frame orwindow as their own calendar. Upon selection of a shared calendar to bedisplayed alongside a first calendar, an aggregate view object is calledto control and coordinate all shared calendars selected for display in acommon window or frame. The aggregate view object determines the viewdata object, including view mode (hourly, daily, weekly, monthly) andother calendar display settings of the first or active calendardisplayed in the common view of shared calendars.

The aggregate view determines the available display space for displayingthe first calendar plus selected additional shared calendars. Theaggregate view determines the size and location for any selectedincoming shared calendar. The aggregate view calls each selected sharedcalendar for displaying in the common view of shared calendars. Theaggregate view next provides each called shared calendar with the viewdata object of the first calendar in order to display each sharedcalendar in the same view mode and settings as the first calendar. Theaggregate view also provides each selected shared calendar with alocation and size of display.

Once each selected shared calendar is called by the aggregate view, eachselected shared calendar is displayed in a common view frame or windowin side-by-side orientation where each displayed shared calendar isdisplayed in the same view mode (hourly, daily, weekly, monthly, etc.).Each date or time position of each displayed shared calendar is alignedwith corresponding date or time positions of other displayed sharedcalendars.

According to one aspect of the invention, selection of any of the one ormore displayed shared calendars establishes the selected calendar as theactive calendar. If view mode or other display settings are changed inthe active calendar, the aggregate view object causes the changes in theview mode or other display settings of the active calendar to be made toall displayed shared calendars in order to keep all shared calendars ina common view mode and with common display settings.

According to another aspect, navigation controls such as time bars andscroll bars are constructed by the aggregate view object for one of theplurality of displayed shared calendars to control all displayed sharedcalendars simultaneously so that, for example, scrolling one sharedcalendar scrolls all shared calendars simultaneously. Utilization of anycontrols or tools of the host calendaring application is applied to eachdisplayed shared calendar.

According to another aspect of the invention, a navigation pane isprovided including a date selection control and a shared calendarselection control. Selection of a date from the date selection controldisplays the selected date for all displayed shared calendarssimultaneously. Selection of an additional shared calendar from theshared calendar selection control causes the aggregate view object tocall the selected additional shared calendar to display the selectedadditional shared calendar along with presently displayed sharedcalendars. Likewise, deletion of a shared calendar from the selecteddisplayed shared calendars causes the aggregate view object to dismissthe deleted calendar. Addition or deletion of a shared calendar resultsin resizing and repositioning of remaining or resulting shared calendarsby the aggregate view object to utilize all available display space.

These and other features and advantages, which characterize the presentinvention, will be apparent from a reading of the following detaileddescription and a review of the associated drawings. It is to beunderstood that both the foregoing general description and the followingdetailed description are exemplary and explanatory only and are notrestrictive of the invention as claimed.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram showing the architecture of a personalcomputer that provides an illustrative operating environment forembodiments of the present invention.

FIG. 2 is a simplified block diagram illustrating a relationship betweena host calendar application, an aggregate view object and a plurality ofselected shared calendars.

FIG. 3 illustrates a computer screen display showing an exemplaryelectronic calendar display showing the display of three sharedcalendars in a single and common display frame.

FIG. 4 is a computer screen display illustrating selection of othershared calendars for display in a common view of shared calendars.

FIG. 5 is a computer screen display showing an actions menu of actionsthat may be applied to selected dates or times in a given electroniccalendar.

FIG. 6 is a computer screen display of a print function dialog accordingto an embodiment of the present invention.

FIGS. 7, 8, 9 and 10 are flow diagrams showing an illustrative routinefor creating and displaying a common view of shared electroniccalendars.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

As briefly described above, embodiments of the present invention aredirected to methods and systems for simultaneously displaying aplurality of shared electronic calendars in a single application windowor frame where each displayed calendar is displayed in a common viewmode in side-by-side orientation relative to each other. In thefollowing detailed description, references are made to the accompanyingdrawings that form a part hereof, and in which are shown by way ofillustrations specific embodiments or examples. These embodiments may becombined, other embodiments may be utilized, and structural changes maybe made without departing from the spirit or scope of the presentinvention. The following detailed description is therefore not to betaken in a limiting sense and the scope of the present invention isdefined by the appended claims and their equivalents.

Referring now to the drawings, in which like numerals represent likeelements or components throughout the several figures, aspects of thepresent invention and the exemplary operating environment will bedescribed. FIG. 1 and the following discussion are intended to provide abrief, general description of a suitable computing environment in whichthe invention may be implemented. While the invention will be describedin the general context of an application program that runs on anoperating system in conjunction with a personal computer, those skilledin the art will recognize that the invention also may be implemented incombination with other program modules. Generally, program modulesinclude routines, programs, components, data structures, etc. thatperform particular tasks or implement particular abstract data types.Moreover, those skilled in the art will appreciate that the inventionmay be practiced with other computer system configurations, includinghand-held devices, multiprocessor systems, microprocessor-based orprogrammable consumer electronics, cell phones, minicomputers, mainframecomputers, and the like. The invention may also be practiced indistributed computing environments where tasks are performed by remoteprocessing devices that are linked through a communications network. Ina distributed computing environment, program modules may be located inboth local and remote memory storage devices.

With reference to FIG. 1, an exemplary system for implementing theinvention includes a conventional personal computer 20, including aprocessing unit 21, a system memory 22, and a system bus 23 that couplesthe system memory to the processing unit 21. The system memory 22includes read-only memory (ROM) 24 and random access memory (RAM) 25. Abasic input/output system 26 (BIOS), containing the basic routines thathelp to transfer information between elements within the personalcomputer 20, such as during start-up, is stored in ROM 24. The personalcomputer 20 further includes a hard disk drive 27, a magnetic disk drive28, e.g., to read from or write to a removable disk 29, and an opticaldisk drive 30, e.g., for reading a CD-ROM disk 31 or to read from orwrite to other optical media. The hard disk drive 27, magnetic diskdrive 28, and optical disk drive 30 are connected to the system bus 23by a hard disk drive interface 32, a magnetic disk drive interface 33,and an optical drive interface 34, respectively. The drives and theirassociated computer-readable media provide non-volatile storage for thepersonal computer 20. Although the description of computer-readablemedia above refers to a hard disk, a removable magnetic disk and aCD-ROM disk, it should be appreciated by those skilled in the art thatother types of media which are readable by a computer, such as magneticcassettes, flash memory cards, digital video disks, Bernoullicartridges, and the like, may also be used in the exemplary operatingenvironment.

A number of program modules may be stored in the drives and RAM 25,including an operating system 35, one or more application programs 100,such as a calendar application 200, described below. A word processorprogram module 37 (or other type of program module), program data, suchas the manifest 38, and other program modules (not shown).

A user may enter commands and information into the personal computer 20through a keyboard 40 and pointing device, such as a mouse 42. Otherinput devices (not shown) may include a microphone, joystick, game pad,satellite dish, scanner, or the like. These and other input devices areoften connected to the processing unit 21 through a serial portinterface 46 that is coupled to the system bus, but may be connected byother interfaces, such as a game port or a universal serial bus (USB). Amonitor 47 or other type of display device is also connected to thesystem bus 23 via an interface, such as a video adapter 48. In additionto the monitor, personal computers typically include other peripheraloutput devices (not shown), such as speakers or printers.

The personal computer 20 may operate in a networked environment usinglogical connections to one or more remote computers, such as a remotecomputer 49. The remote computer 49 may be a server, a router, a peerdevice or other common network node, and typically includes many or allof the elements described relative to the personal computer 20, althoughonly a memory storage device 50 has been illustrated in FIG. 1. Thelogical connections depicted in FIG. 1 include a local area network(LAN) 51 and a wide area network (WAN) 52. Such networking environmentsare commonplace in offices, enterprise-wide computer networks, intranetsand the Internet.

When used in a LAN networking environment, the personal computer 20 isconnected to the LAN 51 through a network interface 53. When used in aWAN networking environment, the personal computer 20 typically includesa modem 54 or other means for establishing communications over the WAN52, such as the Internet. The modem 54, which may be internal orexternal, is connected to the system bus 23 via the serial portinterface 46. In a networked environment, program modules depictedrelative to the personal computer 20, or portions thereof, may be storedin the remote memory storage device. It will be appreciated that thenetwork connections shown are exemplary and other means of establishinga communications link between the computers may be used.

FIG. 2 is a simplified block diagram illustrating a relationship betweena host calendar application, an aggregate view object and a plurality ofselected shared calendars. According to embodiments of the presentinvention, a calendaring application 200, such as Outlook® manufacturedby Microsoft Corporation of Redmond, Wash. provides a shared electroniccalendar view whereby a plurality of shared electronic calendars aredisplayed to the user in a common view mode and side-by-side orientationrelative to each other. It should be appreciated that the calendaringapplication 200 includes sufficient computer executable instructions fordisplaying a graphical user interface containing desired calendarinformation. A frame module 210 includes computer executableinstructions for directing the display of user interface information onthe user's display screen. For example, if the user of the calendaringapplication 200 selects the display of the user's calendar, the framemodule 210 directs the placement, orientation and display of thecalendaring information. Likewise, if the user selects the display ofthe user's contact information via the application 200, the frame module210 directs the display of contact information for the user. In the caseof calendar views, the frame module 210 provides a selected calendarview with an appropriate view data object including the view mode of thecalendar such as hourly, weekly, daily, monthly, etc. and directs thepositioning of other user interface components such as tool bars,navigation panes, and the like.

According to an embodiment of the present invention, in addition todirecting the display of other views 230, such as contact information,the frame module 210 directs the activities of the aggregate view objectmodule 220. As will be described in more detail below, the aggregateview module 220 is a software module integrated with the calendaringapplication 200 including sufficient computer executable instructionsfor directing the display of multiple selected subcalendar views 240,250, 260 in a single view frame or window in side-by-side orientation.That is, according to embodiments of the present invention, a user mayselect a first calendar view 240, such as the user's own calendar,followed by selection of a second calendar view 250, followed byselection of multiple additional calendars up to N selected calendars260. As will be described below with reference to FIG. 3, each selectedcalendar view is displayed by the aggregate view module 220 inside-by-side orientation in a single view frame or window.

FIG. 3 illustrates a computer screen display showing an exemplaryelectronic calendar display showing the display of three sharedcalendars in a single and common display frame. As shown in FIG. 3, acalendaring application display frame 215 is illustrated. According toembodiments of the present invention, a plurality of selected calendarviews 240, 250, 260 are displayed in a single view frame or window inside-by-side orientation. Also illustrated in FIG. 3 is the navigationpane 310 including a date selection control 320, a my-calendar selectioncontrol 330 and another calendars selection control 340. A time bar 350is illustrated adjacent to the first calendar 240 and a scroll bar 375is illustrated adjacent to the third calendar view to 260. A backgroundcolor 370 is illustrated for each calendar view 240, 250, 260. A taskpad (not shown) may also be provided for entering tasks applicable to aselected calendar. According to embodiments of the present invention thetask pad accepts tasks for and is otherwise associated with the firstselected calendar from which the view data object is obtained by theaggregate view module 220 for use with subsequently selected calendars.

Selection of any one of the shared calendars, such as by double clickinga mouse focus inside one of the display shared calendars, establishesthe selected calendar as the active calendar. Subsequently, changes inthe view mode of the active calendar cause like changes in the viewmodes of other displayed calendars. For example, if the first calendar240 is established as the active calendar, and the user changes thefirst calendar 240 view mode from a single day in hourly increments to aweekly calendar, the calendar 240 will be changed to a weekly view mode,and the other displayed shared calendars 250, 260 will likewise bechanged to a weekly view mode.

According to embodiments of the present invention, display of the sharedcalendars 250, 260 alongside the user's calendar 240 displays the datafrom those shared calendars under the control of the aggregate viewmodule 220. Changes in the view mode, for example daily, weekly,monthly, etc., and changes in formatting such as font size of displayedcalendaring data only makes those changes in the user's view of sharedcalendars. That is, if the owner of the data of a shared calendar, forexample calendar 260, subsequently opens his or her calendar at his orher computer via a separate calendaring application 200, that user'scalendaring data will be displayed according to the view mode, and otherdisplay settings selected by that user.

Additionally, date and time positions for each of the displayed sharedcalendars are kept in aligned orientation. For example, the 10:00 a.m.time position for the calendar 240 will be aligned in side-by-sideorientation with the 10:00 a.m. time positions of the other displayedcalendars 250, 260. Manipulation of date and time positions usingcontrols such as the time bar 350 and the scroll bar 375 manipulates alldisplayed calendars 240, 250, 260 simultaneously. That is, scrolling thescroll bar 375 up or down scrolls all display calendars simultaneouslywhile maintaining each date and time position of each displayed calendarin alignment, as described above. Generally, selection of tool barfunctionality or navigation functionality affects all displayedcalendars simultaneously. For example, changes in the font or otherformatting of the active calendar, likewise changes the font or otherformatting of other displayed calendars. Selection of a particular datefrom the date selection control 320 causes the display of the selecteddate in all displayed calendars 240, 250, 260.

As mentioned above, a my calendars selection control 330 and an othercalendars selection control 340 are provided. Selection of one of thecalendars provided in the my calendars selection control 330 causes thedisplay of the selected calendar. Likewise, selection of one or more ofa plurality of other calendars from the other calendars selection pane340 causes the display of the selected calendars. As should beappreciated, the other calendars selection pane my be populated by agiven user with a plurality of calendars of friends, colleagues, orother associates who have given the user permission to display theircalendaring data, as described herein.

According to an embodiment of the present invention, each viewedcalendar 240, 250, 260 may be displayed with a different backgroundcolor 370 to distinguish displayed calendars. The background coloring370 for the displayed calendars may likewise be utilized in the othercalendars selection pane 340 to provide background coloring for selectedcalendars to provide the user a quick and efficient means foridentifying selected calendars.

When a user creates an all day event, an all day event banner 360 isdisplayed. The banner appointments show up in an area at the top of thedaily views, illustrated in FIG. 3. This area is above the time bar 350and does not correspond to a particular time position. Because thebanner area may be enlarged to include a plurality of bannerappointments, enlargement of the banner area for any given selectedcalendar 240, 250, 260 causes a like enlargement of the banner area forall displayed calendars. The aggregate view module 220 inquires of eachcalendar view 240, 250, 260 as to how much space is required for bannerappointments for the selected calendars. The aggregate view module 220then requires space corresponding to the largest amount of requiredbanner appointment space for each of the displayed calendars 240, 250,260.

Having described a relationship between the calendaring application 200,the frame module 210, the aggregate view module 220 and selectedcalendar views 240, 250, 260 with respect to FIG. 2, and havingdescribed the user interface and other display characteristics of theshared calendar view according to embodiments of the present invention,with respect to FIG. 3, the following is a further discussion of thefunctionality of the aggregate view module 220. As described herein, theaggregate view module 220 hosts the plurality of selected calendar views240, 250, 260. The aggregate view module 220 orchestrates the processesfor creating, displaying, and deleting selected calendar views 240, 250,260. Additionally, the aggregate view module hosts and directs thedisplay of other user interface information including components of thenavigation control 310.

The aggregate view module 220 coordinates the time bar 350. According toan embodiment of the present invention, selected calendar may have atime bar 350 if the calendar is in a view mode requiring a time bar.However, because each calendar is synchronized so that movement alongthe time positions of one calendar causes a like movement of timepositions for all displayed calendars, the aggregate view module 220displays only one time bar 350 for all displayed calendars 240, 250, 260and hides the time bars that ordinarily would be displayed for eachother displayed calendar 240, 250, 260 if the calendars are in a viewmode requiring a time bar.

The aggregate view module 220 also coordinates the display of and use ofthe scroll bar 375. As with the time bar 350, each displayed calendar240, 250, 260 includes a scroll bar 375 according to its individual viewdata object. However, the aggregate view module shows only one scrollbar 375 for scrolling each of the displayed calendars simultaneously.The aggregate view module coordinates scrolling among all calendars.Scrolling can be initiated through a number of means, including use ofthe scroll bar, a mouse wheel, arrow keys, and the like. Typically theseevents are directed to individual calendars 240, 250, 260. According toan embodiment of the present invention, if the user scrolls anindividual selected calendar 240, 250, 260, the software coderesponsible for the individual scrolled calendar communicates thescrolling to the aggregate view module which in turn directs all otherdisplayed calendars 240, 250, 260 to scroll in synchronized movementwith the selected calendar. As described above, selection of aparticular view mode for one selected calendar, such as daily, weekly,monthly, etc. likewise causes each other selected calendar to bedisplayed in the same view mode.

Additionally, the aggregate view module manages the utilization of spacein the display frame 210 by all selected user interface componentsincluding the displayed calendars, the navigation pane 310, the time bar350, the scroll bar 375, and the tool bar 380. That is, the aggregateview decides how to divide the visual geometry of the main display frameinto the sections for each selected calendar view as well as othercomponents such as the navigation pane 310, scroll bar 375, time bar 350and tool bar 380. When the spatial needs require, such as when thewindow or frame is resized by the user, or when an additional calendar240, 250, 260 is added or deleted, the aggregate view module 220 resizesand relocates all displayed components appropriately. Accordingly, ifthe user selects an additional calendar for display so that the calendarview illustrated in FIG. 3 will include four selected calendars, forexample, the aggregate view module 220 will determine the spacerequirements for displaying the four selected calendars and will resizeeach selected calendar accordingly to fit each of the four selectedcalendars in the common view illustrated in FIG. 3. Likewise, if theuser deletes a selected calendar, the aggregate view module 220 willexpand the remaining selected calendars to fit the available space inwhich to display.

According to embodiments of the present invention, the aggregate viewmodule 220 also routes various messages, notifications, queries, andcommands to the appropriate selected calendars 240, 250, 260. In somecases, a message is only routed to the active calendar 240, 250, 260.For example, accessibility messages are sent directly to the activecalendar. Thus, screen readers and other accessibility tools maydetermine what appointments are displayed on the active calendar only.As described above, the user may select another displayed calendar 240,250, 260 as the active calendar as desired. Other types of messages maybe sent to all displayed calendars. For example, as described above, ifglobal display settings changes, such as displayed fonts, display sizes,and other formatting information including system colors are changed,the aggregate view module 220 is notified and in turn directs alldisplayed calendars 240, 250, 260 to make required displayed changes.

FIG. 4 is a computer screen display illustrating selection of othershared calendars for display in a common view of shared calendars. Asdescribed above with reference to FIG. 3 an other calendars selectioncontrol 340 is provided in the navigation pane 310. In addition to thedisplay of previously selected other calendars in the control 340, another calendars search control 410 may be provided in the control 340.As shown in FIG. 4, the search control 410 allows a user to enter thename of a friend or associate whose calendar information the user wishesto display in the common view of shared calendars. A drop down contactslist 420 may also be provided to allow the user to parse a list ofavailable calendar data for selection by the user. Once the user hasselected an additional calendar for display by the user, a selectioncontrol for that user may be subsequently displayed as illustrated inFIG. 3. Likewise, the user may delete a previously utilized calendarselection control from the control 340 so that the selection control nolonger appears in the control 340 for selection by the user.

FIG. 5 is a computer screen display showing an actions menu of actionsthat may be applied to selected dates or times in a given electroniccalendar. According to embodiments of the present invention, the usermay advantageously view the calendaring data of all selected displayedcalendars simultaneously. For example, if the user is interested inrequesting a meeting with two of the users colleagues, the user mayselect each of the colleague's calendars 250, 260 for display next tothe user's calendar 240, as illustrated in FIG. 3. The user may thenselect an actions menu 510 as illustrated in FIG. 5 to select a varietyof calendaring actions including a new meeting request action 520.According to embodiment of the present invention, each of the selectedshared calendar owner's names are populated in a control 530 to allowthe user to readily select the names associated with each of theselected calendars for the desired action such as the new meetingrequest action 520. If the user selects a name from the control 530, thecalendaring application 200 will open a meeting request formprepopulated with the name of the user and the person selected from thecontrol 530. If the user selects “All,” a meeting request form may becreated prepopulated with the users name and with the names associatedwith all selected shared calendars. It should be appreciated that theuser may view the calendaring data of each selected calendar, but theuser may not write data to the selected other calendars, unless the userhas permission to write to the selected calendar.

FIG. 6 is a computer screen display of a print function dialog accordingto an embodiment of the present invention. According to embodiment ofthe present invention, a drop down menu such as the “Print thiscalendar” drop down menu 620 may be provided to allow the user to selectfor printing any of the selected shared calendars presently displayed bythe user.

FIGS. 7, 8 and 9 are flow diagrams showing an illustrative routine forcreating and displaying a common view of shared electronic calendars.The method 700 begins at start block 702 and proceeds to block 704 wherea user opens a calendaring application 200, as described above. At block706 the user selects a particular view for opening, such as a calendarview, contacts view, and the like. At block 710, the application framemodule 210 controls the display of the view selected by the user. Atblock 712 a determination is made as to whether the view selected by theuser is a calendar view. If the view selected by the user is anon-calendar view, such as a contacts view 230, the method proceeds toblock 716 and the selected view is displayed, and the method ends atblock 790. If a calendar view is selected by the user, the methodproceeds to block 720 and the calendar view is displayed as controlledby the frame module 210.

At block 724, the user selects an additional calendar 250, 260 fordisplay along with the user's own calendar 240. At block 728, FIG. 8,the frame module 210 calls on the aggregate view module 220 to controlthe display of the plurality of selected calendar views. At block 730,the aggregate view module calls the user's calendar and all selectedadditional calendars. It should be appreciated, that the user may selectfor view other calendars, but not select the user's own calendar. Thatis, it is not necessary according to embodiments of the presentinvention that the user must first select his or her own calendarfollowed by the selection of other calendars. Any combination ofselected calendars may be displayed according to embodiments of thepresent invention if the user has permission to display calendaring dataassociated with the selected calendars.

At block 734, the aggregate view module provides each selected calendarview the controlling view data object. As should be understood by thoseskilled in the art, the controlling view data object includes the viewmode, and other display settings of a parent or first selected calendar.That is, if the first selected calendar is the user's own calendar or ifthe first selected calendar is from the other calendars control, theview data object for the first selected or parent calendar is providedto each additional selected calendar so that each additional selectedcalendar will be displayed in a common view mode and common displaysettings as the first displayed calendar. According to embodiments ofthe present invention, once a view data object is established for alldisplayed calendars, that view data object is maintained for displayedcalendars even if the first selected or parent calendar is later deletedfrom display. Thus, whether a displayed calendar is deleted or whetheran additional calendar is displayed, the view data object of the firstselected calendar is passed to all other selected calendars by theaggregate view module to control display of other selected calendars.

At block 738, the aggregate view module 220 determines a displaylocation for each calendar view. At block 744, the aggregate view moduledetermines a size for each calendar view. For example, the firstselected calendar view may require a larger size than subsequentcalendar views if the first calendar view requires additional space fora time bar 350. The remaining available space is divided by theaggregate view module between other selected calendars so that eachselected calendar including the first selected or parent calendarappears to take an equal amount of display space in the frame 215.

At block 748 the aggregate view module determines the need for andcoordinates the use of a time bar a scroll bar. That is, if the viewmode for each of the selected displayed calendars requires the use of atime bar, such as is necessary with a daily or hourly view mode, a timebar 350 is called by the aggregate view module. At block 752, theaggregate view module determines the view mode, a date range and timerange for the active or selected calendar. At block 758, the aggregateview module directs each selected calendar view to display in the windowor frame 215 according to the view data objects, view mode, date range,and time range of the active calendar.

At block 762, the aggregate view module hosts and directs the display ofother user interface components of the frame or window 215, includingthe navigation pane 310 and the tool bar 380. At block 766, FIG. 10, theuser may select any displayed calendar to establish the selecteddisplayed calendar as the active calendar, and the user may perform anaction in the selected calendar. At block 770, the active calendar viewcommunicates the selected action to the aggregate view module 220. Atblock 774, the aggregate view module 220 directs any required displaychanges caused by the user's actions in the active calendar to be madein all other selected displayed calendars. The method ends at block 790.

As described herein, embodiments of the present invention providemethods and systems for simultaneously displaying a plurality of sharedelectronic calendars in a single application window or frame where eachdisplayed calendar is displayed in a common view mode in side-by-sideorientation relative to each other. It will be apparent to those skilledin the art that various modifications or variations may be made in thepresent invention without departing from the scope or spirit of theinvention. Other embodiments of the invention will be apparent to thoseskilled in the art from consideration of the specification and practiceof the invention disclosed herein.

We claim:
 1. A method for displaying shared electronic calendars, themethod comprising: providing a calendar software application capable ofdisplaying a plurality of calendars simultaneously; displaying aplurality of available calendars in a first view frame of a navigationpane for selection; displaying data associated with each displayedcalendar in a particular displayed calendar to which the data isassociated, wherein the data comprises textual information and aplurality of icons wherein each one of the plurality icons represents atleast one action associated with a calendar event; in response toreceiving a user selection of at least a subset of the plurality ofavailable calendars, displaying at least a portion of the selectedsubset of the plurality of available calendars in: a main view framesimultaneously in side-by-side orientation, wherein displaying at leastthe portion of the selected subset of the plurality of availablecalendars simultaneously in the main view frame comprises aligning eachdisplayed calendar at one of the following: a common time position and acommon date position, and wherein aligning each displayed calendarcomprises realigning each displayed calendar at the common time positionand the common date position in response to a manipulation of the one ofthe following: the common time position and the common date position atone of the displayed subset of the plurality of available calendars, anda view mode indicated by a view data object, the view data object being:obtained from a first selected calendar, the view data object beingindicative of the view mode of the first selected calendar, the viewmode comprising at least one of the following: a position and a size ofdisplay associated with the first selected calendar, and used to passthe view mode of the first selected calendar for displaying at least aportion of the selected subset of the plurality of available calendarsand aligning each displayed calendar, and a tool bar for providingediting, display, file management, and printing functionality tospecified displayed calendars.
 2. The method of claim 1, whereindisplaying a representation of the plurality of available calendars inthe first view frame of the navigation pane for selection comprisesdisplaying representations of calendars associated with other users. 3.The method of claim 2, further comprising: displaying another pluralityof available calendars associated with the user in a second view frameof the navigation pane; and in response to receiving a user selection ofa subset of the other plurality of available calendars associated withthe user, displaying the subset of the other plurality of calendarsassociated with the user along with the subset of the availablecalendars in the main view frame simultaneously.
 4. The method of claim3, further comprising providing, within the first view frame and thesecond view frame, checkboxes for selection of the plurality ofavailable calendars.
 5. The method of claim 1, further comprisingdisplaying in a third view frame of the navigation pane at least onesummary calendar.
 6. The method of claim 1, further comprisingdisplaying in another navigation pane a plurality of selection controlsfor modifying the view mode, wherein the selection controls aredisplayed as a combination of graphical representations and textualrepresentations.
 7. The method of claim 1, further comprising: inresponse to receiving a first user selection of a calendar item in oneof the displayed calendars, displaying a menu of available actionsassociated with the selected calendar item; and in response to receivinga second user selection of one of the available actions, displaying asecondary menu of available calendars to which the selected action is tobe applied to.
 8. The method of claim 1, further comprising in responseto receiving a user indication to print, displaying in a printmanagement view frame a list of the displayed calendars for userselection.
 9. A system comprising a processor to execute instructionsfor displaying shared electronic calendars comprising: a calendarsoftware application capable of displaying a plurality of calendarssimultaneously, the calendar software application configured to call aframe object module for managing display of a selected calendar view;and the frame object module configured to call an aggregate view objectmodule for displaying the plurality of calendars in a common displayview frame of the selected calendar view, the aggregate view objectmodule being configured to: display at least one first calendarassociated with a user, display at least one second calendar associatedwith other users, receive a user selection of at least a subset ofdisplayed calendars for display in the common display view frame, obtaina view data object from a first selected calendar of the displayedcalendars, the view data object indicating a view mode of the firstselected calendar, the view mode being associated with a position of thefirst selected calendar, pass the position of calendar display withinthe common display view frame for each selected calendar to be displayedwithin the common display view frame, display each selected calendar inthe main view frame simultaneously in side-by-side orientation, whereineach selected calendar displayed in the common display view frame isaligned in accordance to the view mode indicated by the view data objectincluding a common time position and a common date position, displaydata associated with each displayed calendar in a particular displayedcalendar to which the data is associated, wherein the data comprisestextual information and a plurality of icons wherein each one of theplurality icons represents at least one action associated with acalendar event, display a tool bar for providing editing, display, filemanagement, and printing functionality to specified displayed calendars,receive a manipulation of a time position at the at least one firstcalendar, and adjust, in response to the received manipulation, the atleast one second calendar to correspond to the manipulated time positionof the at least one first calendar.
 10. The system of claim 9, whereinthe user is enabled to select calendars through checkboxes associatedwith each displayed calendar.
 11. The system of claim 9, wherein theaggregate view object module is further configured to display in atoolbar a plurality of selection controls for modifying the view mode,wherein the selection controls are displayed as a combination ofgraphical representations and textual representations.
 12. The system ofclaim 9, wherein the aggregate view object module is further configuredto display a menu of available actions associated with a selectedcalendar item in response to receiving a user selection of a calendaritem in one of the displayed calendars.
 13. The system of claim 12,wherein the aggregate view object module is further configured todisplay a secondary menu of available calendars to which a selectedaction is to be applied to in response to receiving a user selection ofone of the available actions.
 14. A computer readable storage systemmemory with instructions encoded thereon, which when executed by acomputer perform a method for displaying shared electronic calendars,the method executed by the instructions comprising: providing a userinterface of a calendar software application capable of displaying aplurality of calendars simultaneously, the user interface beingassociated with a user; displaying data associated with each displayedcalendar in a particular displayed calendar to which the data isassociated, wherein the data comprises textual information and aplurality of icons wherein each one of the plurality icons represents atleast one action associated with a calendar event; displaying a firstplurality of available calendars associated with the user for selection;displaying a second plurality of available calendars associated withother users for selection; in response to receiving a user selection ofat least a subset of the first plurality of available calendars and thesecond plurality of available calendars, displaying at least a portionof the selected subset of the first plurality of available calendars andthe second plurality of available calendars in: a main view framesimultaneously in side-by-side orientation, wherein displaying at leastthe portion of the selected subset of the first plurality of availablecalendars and the second plurality of available calendars simultaneouslyin the main view frame comprises aligning each displayed calendar at acommon time position and a common date position, and synchronizing eachdisplayed calendar upon a change in one of the displayed calendars, aview mode indicated by a view data object, the view data object being:obtained from a first selected calendar, the view data object beingindicative of the view mode of the first selected calendar, the viewmode comprising at least one of the following: a position and a size ofdisplay associated with the first selected calendar, and used to passthe view mode of the first selected calendar for displaying at least aportion of the selected subset of the plurality of available calendarsand aligning each displayed calendar, wherein aligning each displayedcalendar comprises realigning each displayed calendar at the common timeposition in response to a manipulation of the common time position atthe first selected calendar, and a tool bar for providing editing,display, file management, and printing functionality to specifieddisplayed calendars.
 15. The computer readable storage system memory ofclaim 14, wherein the instructions further comprise displaying at leastone summary calendar.
 16. The computer readable storage system memory ofclaim 14, wherein the instructions further comprise: in response toreceiving a first user selection of a calendar item in one of thedisplayed calendars, displaying a menu of available actions associatedwith the selected calendar item; and in response to receiving a seconduser selection of one of the available actions, displaying a secondarymenu of available calendars to which the selected action is to beapplied to.
 17. The computer readable storage system memory of claim 14,wherein the instructions further comprise: in response to receiving auser indication for performing an action associated with a one of thedisplayed calendars, displaying a menu of available actions; and inresponse to receiving a user selection of one of the available actions,displaying a secondary menu of available calendars to which the selectedaction is to be applied to.
 18. The computer readable storage systemmemory of claim 14, wherein the instructions further comprise inresponse to receiving a user indication to print, displaying in a printmanagement view frame a list of the displayed calendars for userselection.